package com.xzh.rxjava;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Button;

import com.jakewharton.rxbinding2.view.RxView;

import java.util.concurrent.TimeUnit;

import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;

/**
 * 作者 ： xiezhihui on 2018\8\19 0019.
 * Q Q ： 347649749
 * 微信 ： LOVE347649749
 * 作用 ：按钮不能在短时间内多次点击
 */

public class ButtonClickActivity extends AppCompatActivity {

    private Button mButton ;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button_click_layout);

        /** 三秒钟内只允许一次点击生效，Observer传递的参数必须是Object。否则报错 **/
        mButton = findViewById(R.id.button2);
        RxView.clicks(mButton).throttleFirst(3, TimeUnit.SECONDS).subscribe(new Observer<Object>() {
            @Override
            public void onSubscribe(Disposable d) {

            }

            @Override
            public void onNext(Object o) {
                Log.e("click ",System.currentTimeMillis()+"");
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });
    }

}
